/**
 * Copyright  (c) 2009-2010 Wilmar IT Service,  Inc.   
 * All  rights  reserved. 
 */
package com.wilmar.process.enumerate;

import com.wilmar.process.entity.factory.api.IBaseValueObjectFactory;
import com.wilmar.process.entity.factory.impl.HistoryProcessInstanceVOFactoryImpl;
import com.wilmar.process.entity.vo.ValueObject;

/**
 * @author MaKuBEX Email:makubexnet@gmail.com
 * @version 1.0.0 May 12, 2010
 * @since 1.0.0
 * 
 */
public enum EnumValueObjectFactory {
	HISTORY_PROCESS_INSTANCE_VOFACTORY(
			HistoryProcessInstanceVOFactoryImpl.class);

	private Class<? extends IBaseValueObjectFactory<? extends ValueObject>> clazz;

	private EnumValueObjectFactory(
			Class<? extends IBaseValueObjectFactory<? extends ValueObject>> clazz) {
		this.clazz = clazz;
	}

	public IBaseValueObjectFactory<? extends ValueObject> getFactoryInstance()
			throws InstantiationException, IllegalAccessException {
		return this.clazz.newInstance();
	}
}
